home *** CD-ROM | disk | FTP | other *** search
/ Team Palmtops 7 / Palmtops_numero07.iso / WinCE / SDKWindowsCE / HandHeldPCPro30 / sdk.exe / Jupiter SDK / data1.cab / ATL_Samples / count / counter.h < prev    next >
Encoding:
C/C++ Source or Header  |  1999-02-19  |  3.2 KB  |  103 lines

  1. // Counter.h : Declaration of the CCounter
  2.  
  3. #ifndef __COUNTER_H_
  4. #define __COUNTER_H_
  5.  
  6. #include "resource.h"       // main symbols
  7. #include "Object1.h"
  8.  
  9. /////////////////////////////////////////////////////////////////////////////
  10. // CCounter
  11. class ATL_NO_VTABLE CCounter : 
  12.     public CComObjectRootEx<CComSingleThreadModel>,
  13.     public CComCoClass<CCounter, &CLSID_Counter>,
  14.     public CComControl<CCounter>,
  15.     public IDispatchImpl<ICounter, &IID_ICounter, &LIBID_COUNTLib>,
  16.     public IProvideClassInfo2Impl<&CLSID_Counter, NULL, &LIBID_COUNTLib>,
  17.     public IPersistStreamInitImpl<CCounter>,
  18.     public IPersistStorageImpl<CCounter>,
  19.     public IQuickActivateImpl<CCounter>,
  20.     public IOleControlImpl<CCounter>,
  21.     public IOleObjectImpl<CCounter>,
  22.     public IOleInPlaceActiveObjectImpl<CCounter>,
  23.     public IViewObjectExImpl<CCounter>,
  24.     public IOleInPlaceObjectWindowlessImpl<CCounter>,
  25.     public IDataObjectImpl<CCounter>,
  26.     public ISpecifyPropertyPagesImpl<CCounter>
  27. {
  28. protected:
  29.     IObject1*    m_pIObject;    // pointer to IObject1 interface
  30.  
  31. public:
  32.     CCounter()
  33.     {
  34.         // Instantiate CSimple1 object
  35.         CComObject<CObject1>* m_pObject = new CComObject<CObject1>;
  36.         // Get ISimple1 interface
  37.         if(m_pObject)
  38.             m_pObject->QueryInterface(IID_IObject1, (void**)&m_pIObject);
  39.  
  40.         // Call Initialize() method of the IObject1 interface and pass ICounter interface to the CObject1 object
  41.         // Now both objects know the each other's interfaces
  42.         m_pIObject->Initialize((DWORD)(ICounter*)this);
  43.     }
  44.  
  45.  
  46. DECLARE_REGISTRY_RESOURCEID(IDR_COUNTER)
  47.  
  48. BEGIN_COM_MAP(CCounter)
  49.     COM_INTERFACE_ENTRY(ICounter)
  50.     COM_INTERFACE_ENTRY(IDispatch)
  51.     COM_INTERFACE_ENTRY_IMPL(IViewObjectEx)
  52.     COM_INTERFACE_ENTRY_IMPL_IID(IID_IViewObject2, IViewObjectEx)
  53.     COM_INTERFACE_ENTRY_IMPL_IID(IID_IViewObject, IViewObjectEx)
  54.     COM_INTERFACE_ENTRY_IMPL(IOleInPlaceObjectWindowless)
  55.     COM_INTERFACE_ENTRY_IMPL_IID(IID_IOleInPlaceObject, IOleInPlaceObjectWindowless)
  56.     COM_INTERFACE_ENTRY_IMPL_IID(IID_IOleWindow, IOleInPlaceObjectWindowless)
  57.     COM_INTERFACE_ENTRY_IMPL(IOleInPlaceActiveObject)
  58.     COM_INTERFACE_ENTRY_IMPL(IOleControl)
  59.     COM_INTERFACE_ENTRY_IMPL(IOleObject)
  60.     COM_INTERFACE_ENTRY_IMPL(IQuickActivate)
  61.     COM_INTERFACE_ENTRY_IMPL(IPersistStorage)
  62.     COM_INTERFACE_ENTRY_IMPL(IPersistStreamInit)
  63.     COM_INTERFACE_ENTRY_IMPL(ISpecifyPropertyPages)
  64.     COM_INTERFACE_ENTRY_IMPL(IDataObject)
  65.     COM_INTERFACE_ENTRY(IProvideClassInfo)
  66.     COM_INTERFACE_ENTRY(IProvideClassInfo2)
  67. END_COM_MAP()
  68.  
  69. BEGIN_PROPERTY_MAP(CCounter)
  70.     // Example entries
  71.     // PROP_ENTRY("Property Description", dispid, clsid)
  72. #ifndef UNDER_CE
  73.     PROP_PAGE(CLSID_StockColorPage)
  74. #endif
  75. END_PROPERTY_MAP()
  76.  
  77.  
  78. BEGIN_MSG_MAP(CCounter)
  79.     MESSAGE_HANDLER(WM_PAINT, OnPaint)
  80.     MESSAGE_HANDLER(WM_SETFOCUS, OnSetFocus)
  81.     MESSAGE_HANDLER(WM_KILLFOCUS, OnKillFocus)
  82. END_MSG_MAP()
  83.  
  84.  
  85. // IViewObjectEx
  86.     STDMETHOD(GetViewStatus)(DWORD* pdwStatus)
  87.     {
  88.         ATLTRACE(_T("IViewObjectExImpl::GetViewStatus\n"));
  89.         *pdwStatus = VIEWSTATUS_SOLIDBKGND | VIEWSTATUS_OPAQUE;
  90.         return S_OK;
  91.     }
  92.  
  93. // ICounter
  94. public:
  95.     STDMETHOD(GetInfoFromCounter)(BSTR pInfo);
  96.     STDMETHOD(SetMaxCounter)(int nMax);
  97.     STDMETHOD(StartCounting)();
  98.     HRESULT OnDraw(ATL_DRAWINFO& di);
  99.  
  100. };
  101.  
  102. #endif //__COUNTER_H_
  103.